<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
promise_test(async () => {
  history.replaceState("state1", "", "#1");
  assert_equals(history.state, "state1");

  let onnavigate_called = false;
  navigation.onnavigate = () => onnavigate_called = true;
  await navigation.navigate("#2", { history: "replace" }).committed;
  assert_equals(location.hash, "#2");
  assert_true(onnavigate_called);
  assert_equals(history.state, null);
}, "history.state should be nulled by navigate()");
</script>
